查看原文
其他

亲妹:计算机专业应该怎样规划自己的大学四年

沉默王二 沉默王二 2022-07-13

大家好,我是二哥呀!

虽然今天是工作日,但讲真,我打算好好摸一天老板的鱼,把今天作为休息日来对待。所以,开头就简短的和大家聊两句吧。

好久没带三妹来给大家聊聊天了,老读者们讲心里话,是不是有那么一点点想念呢?😁

新来的读者可能这时候内心有很多问号:“三妹是谁?”

这里就简单交代下背景哈,二哥有个亲妹,去年上的大一,今年大二,在我的安排下,她也选的计算机专业,做了一名程序媛。

前几天,带三妹去逛街,打算给她买双鞋子。店员很热情,笑嘻嘻地说:“你们要不要选个情侣款?”

我连忙说:“这是我妹!”

店员以为我在解释,还将信将疑。可我妹不高兴了,“我哥有那么显年轻吗?”

我心里狂喜:健身看来初见成效哈,以后还得继续坚持,争取练出来个 8 块腹肌。

好了,跟大家套完近乎后言归正传:来聊聊计算机专业应该怎样规划自己的大学四年

假如不读研的话,大学四年时光应该是人生当中最幸福、最快乐、最无忧无虑的四年了。拿春夏秋冬来当做人的一生,大学四年应该是春与夏交接的时分。

  • 规划的好,学有所成,走到社会上后就是精英,顺风顺水。
  • 规划的差,一无是处,走到社会上后注定是处处碰壁。

关于大学期间的学习规划和路线,二哥来分享一些自己的经验,希望能给大家一点点帮助和启发~

先给大家分享一套方法论。

可能没那么全面,但大局观肯定是没毛病的。

01、打基础

基础不牢,地动山摇。

不管是以后从事什么方向,想要吃得开,这些前置的基础知识肯定是必须拿下的。

当然了,如果你只是想混口饭吃,报个班,短期培训下也是可以的。

但如果想比同龄人好一些,计算机专业的这些核心知识,比如说计算机组成原理、操作系统、数据结构与算法、编译原理等等还是要去学的。

如果你要问我学这些有用吗?

我直接告诉你,有用,可能你也不会信,但最后你找工作时候的薪资自然就会告诉你。

02、明确方向

大的方向就是做硬件还是软件,再细分的话,就是前端、后端、算法、客户端这些,当然了,实际情况还可以分的更细,比如说算法分为数据挖掘,还是深度学习等等。

一旦确定了自己的方向,就千万不要心猿意马。

选方向就好像谈恋爱一样,就要专一,心猿意马的话,可能最后全打水漂。

03、打怪进阶

我一直强调的:编程是听不会看不会的,只能练会。初学编程的阶段,就是要 coding 啊!

不仅要完成课业,还要利用业余时间多参加一些比赛,像 ACM 金牌这种还是很吃香的,详情可以参照下面这篇:

老乡拿下了ACM金牌!

当然了,如果你不是一名天赋异禀的选手,也没关系,可以自主搞一些开源作品,或者成为一些优秀开源项目的贡献者,都是对自己非常不错的锻炼。

如果你和老师关系走得比较近,老师手头上有一些资源的时候,也会喊你参与。这时候,别计较钱多钱少的事,就当是增加一下自己的项目经验。

如果能碰上一个比较出彩的项目,找工作的时候写到简历上,是个不错的加分项。

看到这,可能很多同学要问,那具体到每个学期,应该如何安排学习呢

这里有一张哈工大的课程表,大家可以参考。

那如果是让我重新回到学校,我会怎么安排主修的课程呢?

大一(上):学好计算机基础。

推荐学习资料,国防科技大学的计算机基础课:

https://www.icourse163.org/course/NUDT-17003?tid=1465305450

计算机科学速成课:

https://www.bilibili.com/video/av21376839

大一(下):编程语言入门,可以选择 C语言或者 Python 语言。

推荐学习资料,阮一峰老师的《C语言入门教程》:

https://wangdoc.com/clang/

配合翁恺教授的视频课:

https://www.icourse163.org/course/ZJU-199001?from=searchPage

大二(上):学习一门面向对象的编程语言,可选 Java 或者 C++。另外就是对数据结构于算法发起冲击。

推荐学习资料,二哥的《Java 程序员进阶之路》:

https://github.com/itwanger/toBeBetterJavaer

配合尚硅谷宋红康老师的视频课:

https://www.bilibili.com/video/BV1Kb411W75N

大二(下):开始搞计算机组成原理、操作系统、计算机网络。

大三:继续理论知识学习的同时,投入更多时间和精力到实战上面,可以参与老师安排的项目,或者搞个人的开源作品,都 OK。

如果大三下半学期就有实习机会的话,可以提前去体验一下互联网的工作环境,应该会大有所获的,因为学校课程的学习和实际的工作之间会有比较大的差别。

大四:需要考研的话,可以准备起来了;不需要的话,就继续深耕,然后准备秋招、春招,上岸。

那除了紧跟学校的课程外,自学这块有什么建议呢?

我推荐视频入门+书本辅助+大量 coding 的方式。

我最不推荐的方式,就是抱着所谓的大黑皮书使劲地啃呀啃。黑皮书是经典,但如果不是天赋异禀的话,很可能四年都不一定能把一本书啃下来。

这不是吓唬大家,因为枯燥的理论知识真的很容易让一个人产生厌学的情绪,然后既耽误了时间,又什么都没学到,惨的一笔。

一开始,还是推荐大家先看视频入门。等自己有一定的知识储备后,再去读书,效果会好很多。

这里给大家推荐一些网上经典的计算机公开课吧,都是经得起时间考验,评价非常高的。

如果英语功底非常扎实的话,推荐去看国外顶尖大学的公开课。

像数据库实验课,国内的课程一般都是对 MySQL 进行增删改查,然后做个管理系统,国外往往会从 0 开始实现一个数据库。

像操作系统,国内通常会考 PPT 上那些需要死记硬背的知识点,而国外往往会要求实现一个简单的操作系统内核。

但如果英文功底没那么扎实的话,就不建议去看了,因为如果你连单词都不知道什么意思的话,走马观花地看一遍,并不会起到多好的学习效果,同样也是浪费时间。

这种情况下,要么去补英语;要么就选择带中文字幕的,要么就选择国内相对比较优质的教程,也不是没有。

①、操作系统

国外的 MIT6.828 是一门公认的硬核课程,是理论与实践相结合的经典。

https://pdos.csail.mit.edu/6.828/2018/schedule.html

国内的「清华大学公开课:操作系统」口碑也相当的不错。

https://open.163.com/newview/movie/courseintro?newurl=ME1NSA351

②、计算机组成原理

国外的安利一门 Coursera 上的课程,从与非门到俄罗斯方块,简单来说,这门课会教你怎么从与非门开始造一台计算机。

https://www.coursera.org/course/nand2tetris1

国内的推荐哈工大的这门视频课,整体评价非常高。

https://www.bilibili.com/video/BV1WW411Q7PF

③、计算机网络

国外的推荐斯坦福的 CS144,结合《计算机网络:自顶向下方法》这本书。

https://www.scs.stanford.edu/10au-cs144/

国内的推荐湖科大教书匠的《计算机网络微课堂》,制作得非常用心,是一部不可多得的佳作。

https://www.bilibili.com/video/BV1c4411d7jb

④、数据结构与算法

国外的推荐 MIT 6.006,是经典的数据结构和算法入门课程,涉及到排序、哈希、图论、动态规划。

https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

国内的推荐浙江大学的一个的课程,很系统很经典,适合小白入门。

https://www.bilibili.com/video/BV1JW411i731

Talk is cheap, show me the code.

对于计算机专业来说,我认为实践是非常非常重要的。

不管是搞科研,还是参加工作,最终的本质都是要能够解决问题,交付产品,纸上谈兵肯定是行不通的。

对于大学生来说,实战的方式主要有三种。

1)参加比赛

比较有含金量的比赛大概有这么几个:

  • ACM
  • 天池比赛
  • 阿里巴巴中间件性能挑战赛

2)参与开源项目

如果有自主开发能力的话,可以自己搞一个,不要管 low 不 low,比如说图书管理系统、人脸识别系统等等。

当然也可以搞一些高端点的,比如 mini os,编译器等等。

或者,直接参与网上的一些明星开源项目,比如说 GitHub 上的 mall、miaosha、vhr,可以直接去搜这些关键字。

3)刷题

像浙大的 PTA,像牛客,像LeetCode,都是不错的刷题去处,不仅能提高编程的思维能力,还可以在找工作的时候“带一把刷子”。

4)实习

经常有一些小伙伴临近大四毕业了,才慌慌张张地跑来说,自己简历上没有项目经验,要不要紧?

如果能在大三的时候出去实习,就趁早去,感受一下互联网公司的环境、氛围,如果能有幸认识一些比较热心的前辈,那对以后的职业发展绝对是大大的利好。

最后,我想提醒大家的两点是:

1)提升自己的信息检索能力

互联网时代,最不缺的就是信息,甚至说到了泛滥的程度,那如何凭本事找到自己想要的东西,就是一项非常重要的能力了。

2)提升自己的抽象思维能力

抽象是什么?我认为是:忽略一个主题中与当前问题无关的那些方面,以便更充分地注意与当前问题有关的方面,一种从个体把握群体、从现象把握本质的认知过程和思维方法。

我心目中抽象能力最强的当属计算机科学之父——阿兰图灵。

图灵机就是一个通用的计算机的抽象模型,它有三个组成部件:

  • 一条两头都可以无限延伸的纸带
  • 一个读写头
  • 一个控制器

一举奠定了现代计算机的科学理论基础。


好了,就给大家聊这么多吧。大学四年看似很长,其实很短,不要浪费一丁点时间——二哥作为过来人,真的是掏心掏肺。

领先一个人可能只需要一点点努力,追赶一个人可能需要花一辈子的努力。

我是二哥呀,我们明天见~

没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟

推荐阅读

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存